#pragma once

enum Error_code { success, fail, range_error, underflow, overflow, fatal, not_present, duplicate_error, entry_inserted, entry_found, internal_error };
enum Balance_factor { left_higher, equal_height, right_higher };

template<class Entry>
struct Binary_node
{
	Entry data;
	Binary_node<Entry>* left;
	Binary_node<Entry>* right;

	Binary_node();
	Binary_node(const Entry& x);

	virtual void set_balance(Balance_factor b);
	virtual Balance_factor get_balance()const;
};

template<class Entry>
void Binary_node<Entry>::set_balance(Balance_factor b)
{
}

template<class Entry>
Balance_factor Binary_node<Entry>::get_balance()const
{
	return equal_height;
}
